package com.divemotor.ventarepuestosinternet.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table (name="REP_MOV_SEGUI_ESTADO_COTIZA")
public class SeguimientoEstadoCotizacion  implements Serializable {

	
	private static final long serialVersionUID = -1830823160546707887L;

	@EmbeddedId
	private SeguimientoEstadoCotizacionPK seguimientoEstadoCotizacionPK;
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="NUM_ID_COTIZACION", referencedColumnName="NUM_ID_COTIZACION", insertable = false, updatable = false)
    private Cotizacion cotizacion;
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="COD_ID_ESTADO_COTIZACION", referencedColumnName="COD_ID_ESTADO_COTIZACION", insertable = false, updatable = false)
    private EstadoCotizacion estadoCotizacion;
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "fec_cambio")
	private Date fechaCambio;

	public SeguimientoEstadoCotizacionPK getSeguimientoEstadoCotizacionPK() {
		return seguimientoEstadoCotizacionPK;
	}

	public void setSeguimientoEstadoCotizacionPK(SeguimientoEstadoCotizacionPK seguimientoEstadoCotizacionPK) {
		this.seguimientoEstadoCotizacionPK = seguimientoEstadoCotizacionPK;
	}

	public Cotizacion getCotizacion() {
		return cotizacion;
	}

	public void setCotizacion(Cotizacion cotizacion) {
		this.cotizacion = cotizacion;
	}

	public EstadoCotizacion getEstadoCotizacion() {
		return estadoCotizacion;
	}

	public void setEstadoCotizacion(EstadoCotizacion estadoCotizacion) {
		this.estadoCotizacion = estadoCotizacion;
	}

	public Date getFechaCambio() {
		return fechaCambio;
	}

	public void setFechaCambio(Date fechaCambio) {
		this.fechaCambio = fechaCambio;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((seguimientoEstadoCotizacionPK == null) ? 0 : seguimientoEstadoCotizacionPK.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj){
			return true;
		}
		if (obj == null){
			return false;
		}
		if (getClass() != obj.getClass()){
			return false;
		}
		SeguimientoEstadoCotizacion other = (SeguimientoEstadoCotizacion) obj;
		if (seguimientoEstadoCotizacionPK == null) {
			if (other.seguimientoEstadoCotizacionPK != null){
				return false;
			}
		} else if (!seguimientoEstadoCotizacionPK.equals(other.seguimientoEstadoCotizacionPK)){
			return false;
		}
		return true;
	}
	
}
